// 发送ajax请求
/*
* 1. 封装功能函数
*   1. 功能点明确
*   2. 函数内部应该保留固定代码(静态的)
*   3. 将动态的数据抽取成形参，由使用者根据自身的情况动态的传入实参
*   4. 一个良好的功能函数应该设置形参的默认值(ES6的形参默认值)
* 2. 封装功能组件
*   1. 功能点明确
*   2. 组件内部保留静态的代码
*   3. 将动态的数据抽取成props参数，由使用者根据自身的情况以标签属性的形式动态传入props数据
*   4. 一个良好的组件应该设置组件的必要性及数据类型
*     props: {
*       msg: {
*         required: true,
*         default: 默认值，
*         type: String
*       }
*     }
*
* */
import config from './config'
export default  (url, data={}, method='GET') => {
  return new Promise((resolve, reject) => {
    // 1. new Promise初始化promise实例的状态为pending
    wx.request({
      url: config.host + url,
      data,
      method,
      header: {
        // cookie: wx.getStorageSync('cookies')?wx.getStorageSync('cookies').find(item => item.indexOf('MUSIC_U') !== -1):''
        cookie:"MUSIC_U=0065897C15BA4CBE6C1501A2D3B7187F3E45728C37A57220C5FAC3AC3FE55A6267E22CF98A3D8E167D59C6FF7C4DDC5EB96099BB34D3F260FA712DE57BD95A284B2EFAF549EE892E3E078A0E1FF8396DC4A60981A870940201EA54B74FFEEA9B677EC4E34787541C08077D37A8586BB85A2546A4EE77E7D5850D1843146976C03458CEEE965666C774EC5D355545702650953E19A8A1F998437CDB21ED8CF78293EF66AF81193122958BA5F9909EDB91CC74045E613530114BAE0BF73009ADA13BB4FC57E13A24E9CF3941AE2328D41CBB04A6EA632866D5FD3C5636C7F74FE48BBD4CA8BD950CC53D9ED370B88D60A180907E22D52895ECE02CBC3A2060EDFF14B809E4E06AB97C111C0D12268A921C3F2B7565208C182650C6FD64C9F257FFDF40E2ABE2D664BBBC00ACCD501DC121713004DB37B8949785C53CF3577D7A43D4AA60ECB5C75A557CC7D66F3F78439C3E"
      },
      
      success: (res) => {
        // console.log('请求成功: ', res);
        if(data.isLogin){// 登录请求
          // 将用户的cookie存入至本地
          wx.setStorage({
            key: 'cookies',
            data: res.cookies
          })
        }
        resolve(res.data); // resolve修改promise的状态为成功状态resolved
      },
      fail: (err) => {
        // console.log('请求失败: ', err);
        reject(err); // reject修改promise的状态为失败状态 rejected
      }
    })
  })
  
}
